package com.dzt.trainingmgt.service;

import com.dzt.trainingmgt.dao.UserDAO;
import com.dzt.trainingmgt.model.User;
import com.dzt.trainingmgt.utils.LogUtils;

public class UserService {

    private UserDAO userDAO;

    // 构造器注入 UserDAO
    public UserService(UserDAO userDAO) {
        this.userDAO = userDAO;
    }

    /**
     * 根据传入的 id 字符串，返回对应的用户角色
     *
     * @param idString 用户 ID 字符串
     * @return 用户角色（role），如果找不到则返回相应的提示信息
     */
    public String getUserRoleById(String idString) {
        // 参数检测：首先确保 idString 是有效的数字
        if (idString == null || idString.isEmpty()) {
            
            return "Invalid ID: ID cannot be null or empty";
        }

        int userId;
        try {
            // 转换为整数
            userId = Integer.parseInt(idString);
        } catch (NumberFormatException e) {
         
            return "Invalid ID: ID must be a valid integer";
        }

        // 检查转换后的 id 是否有效（如是否为正数等）
        if (userId <= 0) {
            return "Invalid ID: ID must be a positive integer";
        }

        // 使用 DAO 查找用户
        User user = null;
        try {
            user = userDAO.getUserById(userId);
        } catch (Exception e) {

            return "Error: Unable to retrieve user information";
        }

        // 如果用户为 null，返回找不到用户的提示
        if (user == null) {
            return "User not found with ID: " + userId;
        }

        // 如果找到用户，返回其角色
        return user.getUser_role();
    }
}
